﻿

//作业标题(656)
//最大公约数
//作业内容
//给定两个数，求这两个数的最大公约数
//例如：
//输入：20 40
//输出：20


//int main()
//{
//	int a = 0, b = 0, c = 0;
//	scanf("%d %d", &a, &b);
//	if (a < b)
//	{
//		c = a;
//		a = b;
//		b = c;
//	}
//	while (b != 0)
//	{
//		c = b;
//		b = a % b;
//		a = c;
//	}
//	printf("%d", a);
//	return 0;
//}

//作业标题(660)
//数9的个数
//
//作业内容
//编写程序数一下 1到 100 的所有整数中出现多少个数字9

//#define _CRT_SECURE_NO_WARNINGS 1
//#include<stdio.h>
//int main()
//{
//	int count = 0;
//	for (int i = 1; i <= 100; i++)
//	{
//		if (i == 9 || i % 10 == 9)
//		{
//			count++;
//		}
//	}
//
//	printf("%d", count);
//	return 0;
//}

//作业标题(664)
//二分查找
//
//作业内容
//编写代码在一个整形有序数组中查找具体的某个数
//
//要求：找到了就打印数字所在的下标，找不到则输出：找不到。
//
//
//答题
//(注：编程题请贴代码 + 运行截图！)
//冒泡排序算法实现：
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int arr[10] = { 2,3,1,6,7,8,9,10,4,5 };
	int len = sizeof(arr) / sizeof(arr[0]);//这里求得数组元素的个数
	for (int i = 0; i < len; i++)
	{
		for (int j = 0; j < len - i - 1; j++)
		{
			int temp = 0;
			if (arr[j] < arr[j + 1])
			{
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}

	for (int i = 0; i < len; i++)
	{
		printf("%d ", arr[i]);
	}

	return 0;
}


//
//#define _CRT_SECURE_NO_WARNINGS 1
//#include<stdio.h>
//
//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	int len = sizeof(arr) / sizeof(arr[0]);
//	int left = 0;
//	int right = len - 1;
//	int mid = 0;
//	int k = 0;
//	scanf("%d", &k);
//
//	while (left <= right)
//	{
//		//mid = (left + right) /2;这样写不好因为，mid只要是一个数据类型的数值，其就有一个最大数上限
//		//如果要让他的上限更大，尽可能规避这个问题。
//		mid = (right - left) / 2 + left;
//		if (arr[mid] > k)
//		{
//			right = mid - 1;
//
//		}
//		else if (arr[mid] < k)
//		{
//			left = mid + 1;
//
//		}
//		else
//		{
//			printf("找到了，该数的下标为：%d\n", mid);
//			break;
//		}
//	}
//
//	return 0;
//}
